package com.emip.dao.impl;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.emip.bean.SiteBean;
import com.emip.config.CommonOperation;
import com.emip.dao.BaseDAO;
import com.emip.dao.SiteDAO;

@Repository("siteDAO")
public class SiteDAOImpl extends BaseDAO implements SiteDAO {

	public String add(SiteBean entity) {
		String id = (String)this.getHibernateTemplate().save(entity);
		return id;
	}

	public SiteBean findByID(String ID) {
		SiteBean bean = this.getHibernateTemplate().get(SiteBean.class, ID);
		return bean;
	}

	public Boolean findExist(SiteBean entity) {
		Object[] params = new Object[] {entity.getId()};
		List<SiteBean> result = this.getHibernateTemplate().find("from SiteBean m where id=?", params);
		if (result.size()==0) {
			return false;
		}
		return true;
		/**
		else {
			//是否存在的那条记录的monitorType, item 和 name 和自己是相同的，如果是的话，那么其实是update其他字段的一种操作，也是合法操作
			if (entity.getId()==0) {  //新增的情况
				return true;
			} else {
				SiteBean eBean = this.getHibernateTemplate().get(SiteBean.class, entity.getId());
				if (entity.getName().equals(eBean.getName())) {
					return false;
				} else {
					return true;
				}
			}
		}
		**/
	}

	public List<SiteBean> getAll() {
		List<SiteBean> result = this.getHibernateTemplate().find("from SiteBean m order by ID");
		return result;
	}

	public void remove(SiteBean entity) {
		this.getHibernateTemplate().delete(entity);
	}

	public void update(SiteBean entity) {
		this.getHibernateTemplate().update(entity);
	}

	public List<SiteBean> getAllOrderByProvince() {
		List<SiteBean> result = this.getHibernateTemplate().find("select m from SiteBean m, AreaBean n where m.area.id=n.id order by n.province");
		return result;
	}

}
